scrollbar: keep populate-popup signal working
authorMatthias Clasen <mclasen@redhat.com>
Sat, 7 Oct 2017 23:53:19 +0000 (19:53 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 7 Oct 2017 23:53:19 +0000 (19:53 -0400)
This is used for example in the source tab of gtk4-demo.
It broke because GtkScrollbar no longer is a GtkRange,
but rather has one. So we need to forward the signal.

gtk/gtkscrollbar.c

index 6f7c1a9fec1bcf226402b3f72cbab1f8e21e6948..87f2120fee3d3c9d3fe402539a697f5235088c8c 100644 (file)
@@ -233,6 +233,16 @@ gtk_scrollbar_class_init (GtkScrollbarClass *class)
   gtk_widget_class_set_css_name (widget_class, "scrollbar");
 }
 
+static gboolean
+emit_popup_menu (GtkWidget *self)
+{
+  gboolean handled;
+
+  g_signal_emit_by_name (self, "popup-menu", &handled);
+
+  return handled;
+}
+
 static void
 gtk_scrollbar_init (GtkScrollbar *self)
 {
@@ -245,6 +255,7 @@ gtk_scrollbar_init (GtkScrollbar *self)
   priv->box = gtk_box_new (priv->orientation, 0);
   gtk_widget_set_parent (priv->box, GTK_WIDGET (self));
   priv->range = g_object_new (GTK_TYPE_RANGE, NULL);
+  g_signal_connect_swapped (priv->range, "popup-menu", G_CALLBACK (emit_popup_menu), self);
   gtk_widget_set_hexpand (priv->range, TRUE);
   gtk_widget_set_vexpand (priv->range, TRUE);
   gtk_container_add (GTK_CONTAINER (priv->box), priv->range);